約 6,324,307 件
https://w.atwiki.jp/akasatanahama/pages/106.html
概要 MOD製作チュートリアル/TileEntityの追加で追加したTileEntityにGUI(Graphical User Interface)を実装する。 動作確認済バージョン:1.7.10-10.13.4.1558 ソースコード AluminiumMod.java package tutorial.aluminiummod; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.Mod.Instance; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.network.NetworkRegistry; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.block.Block; @Mod(modid = AluminiumMod.MODID, name = AluminiumMod.MODNAME, version = AluminiumMod.VERSION) public class AluminiumMod { public static final String MODID = "AluminiumMod"; public static final String MODNAME = "Aluminium Mod"; public static final String VERSION = "1.0.0"; @Instance(MODID) public static AluminiumMod instance; public static Block chestAluminium; @EventHandler public void perInit(FMLPreInitializationEvent event) { chestAluminium = new BlockAluminiumChest() .setBlockName("chestAluminium") .setBlockTextureName("aluminiummod Aluminium_Chest"); GameRegistry.registerBlock(chestAluminium, "chestAluminium"); GameRegistry.registerTileEntity(TileEntityAluminiumChest.class, "TileEntityAluminiumChest"); NetworkRegistry.INSTANCE.registerGuiHandler(this.instance, new AluminiumModGuiHandler()); } } BlockAluminiumChest.java package tutorial.aluminiummod; import java.util.Random; import net.minecraft.block.Block; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class BlockAluminiumChest extends Block implements ITileEntityProvider { private Random random = new Random(); public BlockAluminiumChest() { super(Material.rock); this.setCreativeTab(CreativeTabs.tabDecorations); this.setHardness(5.0F); this.setResistance(1.0F); this.setStepSound(soundTypeMetal); isBlockContainer = true; } @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityAluminiumChest(); } @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { // GUIを開く。 player.openGui(AluminiumMod.instance, 1, world, x, y, z); return true; } @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { // TileEntityの内部にあるアイテムをドロップさせる。 TileEntityAluminiumChest tileentity = (TileEntityAluminiumChest) world.getTileEntity(x, y, z); if (tileentity != null) { for (int i = 0; i tileentity.getSizeInventory(); i++) { ItemStack itemStack = tileentity.getStackInSlot(i); if (itemStack != null) { float f = random.nextFloat() * 0.6F + 0.1F; float f1 = random.nextFloat() * 0.6F + 0.1F; float f2 = random.nextFloat() * 0.6F + 0.1F; while (itemStack.stackSize 0) { int j = random.nextInt(21) + 10; if (j itemStack.stackSize) { j = itemStack.stackSize; } itemStack.stackSize -= j; EntityItem entityItem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemStack.getItem(), j, itemStack.getItemDamage())); if (itemStack.hasTagCompound()) { entityItem.getEntityItem() .setTagCompound(((NBTTagCompound) itemStack.getTagCompound().copy())); } float f3 = 0.025F; entityItem.motionX = (float) random.nextGaussian() * f3; entityItem.motionY = (float) random.nextGaussian() * f3 + 0.1F; entityItem.motionZ = (float) random.nextGaussian() * f3; world.spawnEntityInWorld(entityItem); } } } world.func_147453_f(x, y, z, block); } super.breakBlock(world, x, y, z, block, meta); } } TileEntityAluminiumChest.java package tutorial.aluminiummod; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; public class TileEntityAluminiumChest extends TileEntity implements IInventory { protected ItemStack[] itemStacks = new ItemStack[54]; @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i itemStacks.length; i++) { if (itemStacks[i] == null) continue; NBTTagCompound nbt1 = new NBTTagCompound(); nbt1.setByte("Slot", (byte) i); itemStacks[i].writeToNBT(nbt1); nbttaglist.appendTag(nbt1); } nbt.setTag("Items", nbttaglist); } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList nbttaglist = nbt.getTagList("Items", 10); itemStacks = new ItemStack[54]; for (int i = 0; i nbttaglist.tagCount(); i++) { NBTTagCompound nbt1 = nbttaglist.getCompoundTagAt(i); byte b0 = nbt1.getByte("Slot"); if (0 = b0 b0 itemStacks.length) { itemStacks[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } } @Override public int getSizeInventory() { return 54; } @Override public ItemStack getStackInSlot(int slot) { return itemStacks[slot]; } @Override public ItemStack decrStackSize(int slot, int amount) { if (itemStacks[slot] == null) return null; ItemStack itemstack; if (itemStacks[slot].stackSize = amount) { itemstack = itemStacks[slot]; itemStacks[slot] = null; return itemstack; } itemstack = itemStacks[slot].splitStack(amount); if (itemStacks[slot].stackSize 1) { itemStacks[slot] = null; } return itemstack; } @Override public ItemStack getStackInSlotOnClosing(int slot) { return null; } @Override public void setInventorySlotContents(int slot, ItemStack itemStack) { itemStacks[slot] = itemStack; if (itemStack != null itemStack.stackSize this.getInventoryStackLimit()) { itemStack.stackSize = this.getInventoryStackLimit(); } } @Override public boolean hasCustomInventoryName() { return false; } @Override public String getInventoryName() { return "container.AluminiumMod.AluminiumChest"; } @Override public int getInventoryStackLimit() { return 64; } @Override public boolean isUseableByPlayer(EntityPlayer player) { return worldObj.getTileEntity(xCoord, yCoord, zCoord) != this ? false player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) = 64.0D; } @Override public void openInventory() {} @Override public void closeInventory() {} @Override public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return true; } } AluminiumModGuiHandler.java package tutorial.aluminiummod; import cpw.mods.fml.common.network.IGuiHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.tileentity.TileEntity; import net.minecraft.world.World; public class AluminiumModGuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { if (!world.blockExists(x, y, z)) return null; TileEntity tileentity = world.getTileEntity(x, y, z); if (tileentity instanceof TileEntityAluminiumChest) { return new ContainerAluminiumChest(player, (TileEntityAluminiumChest) tileentity); } return null; } @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { if (!world.blockExists(x, y, z)) return null; TileEntity tileentity = world.getTileEntity(x, y, z); if (tileentity instanceof TileEntityAluminiumChest) { return new GuiAluminiumChest(player, (TileEntityAluminiumChest) tileentity); } return null; } } ContainerAluminiumChest.java package tutorial.aluminiummod; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerAluminiumChest extends Container { private TileEntityAluminiumChest tileEntity; /** アルミニウムチェストのインベントリの第一スロットの番号 */ private static final int index0 = 0; /** プレイヤーのインベントリの第一スロットの番号 */ private static final int index1 = 54; /** クイックスロットの第一スロットの番号 */ private static final int index2 = 81; /** このコンテナの全体のスロット数 */ private static final int index3 = 90; public ContainerAluminiumChest(EntityPlayer player, TileEntityAluminiumChest tileEntity) { // スロットを設定する。 this.tileEntity = tileEntity; for (int iy = 0; iy 6; iy++) { for (int ix = 0; ix 9; ix++) { this.addSlotToContainer(new Slot(tileEntity, ix + (iy * 9), 8 + (ix * 18), 18 + (iy * 18))); } } for (int iy = 0; iy 3; iy++) { for (int ix = 0; ix 9; ix++) { this.addSlotToContainer(new Slot(player.inventory, ix + (iy * 9) + 9, 8 + (ix * 18), 140 + (iy * 18))); } } for (int ix = 0; ix 9; ix++) { this.addSlotToContainer(new Slot(player.inventory, ix, 8 + (ix * 18), 198)); } } @Override public boolean canInteractWith(EntityPlayer player) { return tileEntity.isUseableByPlayer(player); } @Override public ItemStack transferStackInSlot(EntityPlayer player, int slotNumber) { ItemStack itemStack = null; Slot slot = (Slot) inventorySlots.get(slotNumber); if (slot != null slot.getHasStack()) { ItemStack itemStack1 = slot.getStack(); itemStack = itemStack1.copy(); if (index0 = slotNumber slotNumber index1) { // アルミニウムチェストのインベントリならプレイヤーのインベントリに移動。 if (!this.mergeItemStack(itemStack1, index1, index3, true)) { return null; } } else { // プレイヤーのインベントリならアルミニウムチェストのインベントリに移動。 if (!this.mergeItemStack(itemStack1, index0, index1, false)) { return null; } } if (itemStack1.stackSize == 0) { slot.putStack((ItemStack) null); } else { slot.onSlotChanged(); } if (itemStack1.stackSize == itemStack.stackSize) { return null; } slot.onPickupFromSlot(player, itemStack1); } return itemStack; } } GuiAluminiumChest.java package tutorial.aluminiummod; import org.lwjgl.opengl.GL11; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; public class GuiAluminiumChest extends GuiContainer { private TileEntityAluminiumChest tileEntity; // GUIのテクスチャの場所を指定する。今回はバニラのラージチェストと同じものを使う。 private static final ResourceLocation GUITEXTURE = new ResourceLocation("textures/gui/container/generic_54.png"); public GuiAluminiumChest(EntityPlayer player, TileEntityAluminiumChest tileEnttiy) { super(new ContainerAluminiumChest(player, tileEnttiy)); this.tileEntity = tileEnttiy; ySize = 222; } @Override protected void drawGuiContainerForegroundLayer(int mouseX, int mouseY) { fontRendererObj.drawString(StatCollector.translateToLocal(tileEntity.getInventoryName()), 8, 6, 4210752); fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, ySize - 96 + 2, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float tick, int mouseX, int mouseY) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); mc.getTextureManager().bindTexture(GUITEXTURE); int k = (width - xSize) / 2; int l = (height - ySize) / 2; this.drawTexturedModalRect(k, l, 0, 0, xSize, ySize); } } 解説 Instance String modid コアクラスのインスタンスにつけるアノテーション。 登録やインスタンスの生成・代入はForge側がやってくれるので何もしなくてよい。 NetworkRegistry GUIやパケットなどを管理するenum。 void registerGuiHandler(Object mod, IGuiHandler handler) MODのコアクラスのインスタンスと、それに対応したGuiHandlerを登録する処理。 EntityPlayer プレイヤーのEntity継承クラス。 void openGui(Object mod, int modGuiId, World world, int x, int y, int z) 第一引数はコアクラスのインスタンス、第二引数はMOD内でのGUIのID。 プレイヤーにGUIを開かせる。 IGuiHandler GuiHandlerのためのインターフェース。 Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) サーバー側で呼ばれる。 基本的にはIDに対応したContainerを返す。 Worldのインスタンスと座標も引数に含まれているので、TileEntityを取得して判別してもよい。 Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) クライアント側で呼ばれる。 基本的にはIDに対応したGuiを返す。 Container Slot addSlotToContainer(Slot slot) 新たなSlotをコンテナに登録する処理。 boolean canInteractWith(EntityPlayer player) プレイヤーがコンテナを使えるかどうかの判定。 ItemStack transferStackInSlot(EntityPlayer player, int slotNumber) スロットがShift+クリックされた時の処理。 クリックされたスロットの中身を移動する。 boolean mergeItemStack(ItemStack itemStack, int beginIndex, int endIndex, boolean doReverse) 引数のItemStackを指定された範囲内の空のスロットに移動する。 範囲は、beginIndexを含み、endIndexは含まない。 doReverseがtrueの場合は、検索方向がend→beginになる。 GuiContainer コンテナを持つGUIのクラス。 クライアントのみで使用される。 public GuiContainer(Container container) 引数は対応するコンテナ。 void drawGuiContainerForegroundLayer(int mouseX, int mouseY) Guiの前面レイヤーを描画する処理。 文字の描画などをする。 void drawGuiContainerBackgroundLayer(float tick, int mouseX, int mouseY) Guiの背景レイヤーを描画する処理。 Guiのテクスチャの描画などをする。 ResourceLocation リソースの場所を保持するクラス。 public ResourceLocation(String path) コンストラクタ。 引数でリソースの場所を指定する。 "modid textures/..."というように、すべて小文字にしたMODIDと、textures以下のファイルのパスを指定する。 例えば、assets/aluminiummod/textures/gui/gui.pngだとすると、private static final ResourceLocation GUITEXTURE = new ResourceLocation("aluminiummod textures/gui/gui.png");と記述する。 なお、GUIのテクスチャは画像ファイルを正方形にしないと縦横比がおかしくなる可能性があるので、カンバスサイズを256x256や512x512などにしておいて、余白を透明で残しておくと良い。 使用例 オファレンプレゼントボックスを追加している部分。 +オファレンMOD OfalenModCore.java package nahama.ofalenmod; /*略*/ /** * @author Akasata Nahama */ @Mod(modid = OfalenModCore.MODID, name = OfalenModCore.MODNAME, version = OfalenModCore.VERSION) public class OfalenModCore { public static final String MODID = "OfalenMod"; public static final String MODNAME = "Ofalen Mod"; public static final String MCVERSION = "1.7.10"; public static final String OMVERSION = "1.1.0"; public static final String VERSION = "[" + MCVERSION + "]" + OMVERSION; /** coreクラスのインスタンス */ @Instance(MODID) public static OfalenModCore instance; /*略*/ /** 初期化前処理。 */ @EventHandler public void preInit(FMLPreInitializationEvent event) { /*略*/ OfalenModBlockCore.registerBlock(); // 機械類のGUIを登録する。 NetworkRegistry.INSTANCE.registerGuiHandler(this.instance, new OfalenModGuiHandler()); /*略*/ } /*略*/ } OfalenModBlockCore.java package nahama.ofalenmod.core; /*略*/ public class OfalenModBlockCore { /*略*/ public static Block boxPresentOfalen; /** ブロックを登録する処理。 */ public static void registerBlock() { /*略*/ boxPresentOfalen = new BlockPresentBox() .setBlockName("boxPresentOfalen") .setBlockTextureName("ofalenmod present_box"); GameRegistry.registerBlock(boxPresentOfalen, "boxPresentOfalen"); GameRegistry.registerTileEntity(TileEntityPresentBox.class, "TileEntityOfalenPresentBox"); } } BlockPresentBox.java package nahama.ofalenmod.block; import java.util.Random; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; import nahama.ofalenmod.OfalenModCore; import nahama.ofalenmod.handler.OfalenModAnniversaryHandler; import nahama.ofalenmod.tileentity.TileEntityPresentBox; import net.minecraft.block.Block; import net.minecraft.block.ITileEntityProvider; import net.minecraft.block.material.Material; import net.minecraft.client.renderer.texture.IIconRegister; import net.minecraft.entity.item.EntityItem; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.IIcon; import net.minecraft.world.World; public class BlockPresentBox extends Block implements ITileEntityProvider { private Random random = new Random(); /** 0 下,1 上,2 横,3 クリスマス下,4;クリスマス上,5 クリスマス横 */ private IIcon[] iicon = new IIcon[6]; public BlockPresentBox() { super(Material.sponge); this.setCreativeTab(OfalenModCore.tabOfalen); this.setHardness(1.0F); this.setResistance(1.0F); this.setStepSound(Block.soundTypeCloth); } @Override public TileEntity createNewTileEntity(World world, int meta) { return new TileEntityPresentBox(); } /** プレイヤーに右クリックされたときの処理。 */ @Override public boolean onBlockActivated(World world, int x, int y, int z, EntityPlayer player, int side, float hitX, float hitY, float hitZ) { // GUIを開く player.openGui(OfalenModCore.instance, 1, world, x, y, z); return true; } /** ブロックが破壊された時の処理。 */ @Override public void breakBlock(World world, int x, int y, int z, Block block, int meta) { // TileEntityの内部にあるアイテムをドロップさせる。 TileEntityPresentBox tileentity = (TileEntityPresentBox) world.getTileEntity(x, y, z); if (tileentity != null) { for (int i = 0; i tileentity.getSizeInventory(); i++) { ItemStack itemStack = tileentity.getStackInSlot(i); if (itemStack != null) { float f = random.nextFloat() * 0.6F + 0.1F; float f1 = random.nextFloat() * 0.6F + 0.1F; float f2 = random.nextFloat() * 0.6F + 0.1F; while (itemStack.stackSize 0) { int j = random.nextInt(21) + 10; if (j itemStack.stackSize) { j = itemStack.stackSize; } itemStack.stackSize -= j; EntityItem entityItem = new EntityItem(world, x + f, y + f1, z + f2, new ItemStack(itemStack.getItem(), j, itemStack.getItemDamage())); if (itemStack.hasTagCompound()) { entityItem.getEntityItem().setTagCompound(((NBTTagCompound) itemStack.getTagCompound().copy())); } float f3 = 0.025F; entityItem.motionX = (float) random.nextGaussian() * f3; entityItem.motionY = (float) random.nextGaussian() * f3 + 0.1F; entityItem.motionZ = (float) random.nextGaussian() * f3; world.spawnEntityInWorld(entityItem); } } } world.func_147453_f(x, y, z, block); } super.breakBlock(world, x, y, z, block, meta); } /** ブロックのアイコンを登録する処理。 */ @Override @SideOnly(Side.CLIENT) public void registerBlockIcons(IIconRegister register) { for (int i = 0; i 6; i++) { iicon[i] = register.registerIcon(this.getTextureName() + "-" + i); } } /** ブロックのアイコンを返す。 */ @Override @SideOnly(Side.CLIENT) public IIcon getIcon(int side, int meta) { int i = 2; if (side == 0) i = 0; if (side == 1) i = 1; if (OfalenModAnniversaryHandler.isChristmas) i += 3; return iicon[i]; } } TileEntityPresentBox.java package nahama.ofalenmod.tileentity; import nahama.ofalenmod.handler.OfalenModAnniversaryHandler; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.IInventory; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.nbt.NBTTagList; import net.minecraft.tileentity.TileEntity; public class TileEntityPresentBox extends TileEntity implements IInventory { protected ItemStack[] itemStacks = new ItemStack[54]; protected String owner; /** プレイヤーがインベントリを開けた時の処理。 */ public void openInventory(EntityPlayer player) { if (owner != null || worldObj.isRemote) return; // オーナーに設定し、中身を上書きする。 owner = player.getCommandSenderName(); ItemStack[] presents = OfalenModAnniversaryHandler.getPresents(player); if (presents == null) return; itemStacks = presents; } @Override public void writeToNBT(NBTTagCompound nbt) { super.writeToNBT(nbt); NBTTagList nbttaglist = new NBTTagList(); for (int i = 0; i itemStacks.length; i++) { if (itemStacks[i] == null) continue; NBTTagCompound nbt1 = new NBTTagCompound(); nbt1.setByte("Slot", (byte) i); itemStacks[i].writeToNBT(nbt1); nbttaglist.appendTag(nbt1); } nbt.setTag("Items", nbttaglist); nbt.setString("Owner", owner); } @Override public void readFromNBT(NBTTagCompound nbt) { super.readFromNBT(nbt); NBTTagList nbttaglist = nbt.getTagList("Items", 10); itemStacks = new ItemStack[54]; for (int i = 0; i nbttaglist.tagCount(); i++) { NBTTagCompound nbt1 = nbttaglist.getCompoundTagAt(i); byte b0 = nbt1.getByte("Slot"); if (0 = b0 b0 itemStacks.length) { itemStacks[b0] = ItemStack.loadItemStackFromNBT(nbt1); } } owner = nbt.getString("Owner"); } /** インベントリのスロット数を返す。 */ @Override public int getSizeInventory() { return 54; } /** スロットのアイテムを返す。 */ @Override public ItemStack getStackInSlot(int slot) { return itemStacks[slot]; } /** スロットのスタック数を減らす。 */ @Override public ItemStack decrStackSize(int slot, int amount) { if (itemStacks[slot] == null) return null; ItemStack itemstack; if (itemStacks[slot].stackSize = amount) { itemstack = itemStacks[slot]; itemStacks[slot] = null; return itemstack; } itemstack = itemStacks[slot].splitStack(amount); if (itemStacks[slot].stackSize 1) { itemStacks[slot] = null; } return itemstack; } @Override public ItemStack getStackInSlotOnClosing(int slot) { return null; } /** スロットの中身を設定する。 */ @Override public void setInventorySlotContents(int slot, ItemStack itemStack) { itemStacks[slot] = itemStack; if (itemStack != null itemStack.stackSize this.getInventoryStackLimit()) { itemStack.stackSize = this.getInventoryStackLimit(); } } /** 金床で設定された名前を持つかどうか。 */ @Override public boolean hasCustomInventoryName() { return false; } /** インベントリの名前を返す。 */ @Override public String getInventoryName() { return "container.OfalenMod.PresentBox"; } /** このインベントリの最大スタック数を返す。 */ @Override public int getInventoryStackLimit() { return 64; } /** プレイヤーが使用できるかどうか。 */ @Override public boolean isUseableByPlayer(EntityPlayer player) { if (owner != null !player.getCommandSenderName().equals(owner)) return false; return worldObj.getTileEntity(xCoord, yCoord, zCoord) != this ? false player.getDistanceSq(xCoord + 0.5D, yCoord + 0.5D, zCoord + 0.5D) = 64.0D; } @Override public void openInventory() {} @Override public void closeInventory() {} /** スロットにアクセスできるかどうか。 */ @Override public boolean isItemValidForSlot(int slot, ItemStack itemStack) { return false; } } OfalenModGuiHandler.java package nahama.ofalenmod.handler; /*略*/ public class OfalenModGuiHandler implements IGuiHandler { @Override public Object getServerGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { if (id == 2) return new ContainerItemShield(player); if (id == 3) return new ContainerItemTeleporter(player); if (id == 4) return new ContainerItemFloater(player); if (!world.blockExists(x, y, z)) return null; TileEntity tileentity = world.getTileEntity(x, y, z); if (tileentity instanceof TileEntitySmeltingMachine) { return new ContainerSmeltingMachine(player, (TileEntitySmeltingMachine) tileentity); } if (tileentity instanceof TileEntityRepairMachine) { return new ContainerRepairMachine(player, (TileEntityRepairMachine) tileentity); } if (tileentity instanceof TileEntityConversionMachine) { return new ContainerConversionMachine(player, (TileEntityConversionMachine) tileentity); } if (tileentity instanceof TileEntityTeleportMarker) { return new ContainerTeleportMarker(player, (TileEntityTeleportMarker) tileentity); } if (tileentity instanceof TileEntityPresentBox) { return new ContainerPresentBox(player, (TileEntityPresentBox) tileentity); } return null; } @Override public Object getClientGuiElement(int id, EntityPlayer player, World world, int x, int y, int z) { if (id == 2) return new GuiItemShield(player); if (id == 3) return new GuiItemTeleporter(player); if (id == 4) return new GuiItemFloater(player); if (!world.blockExists(x, y, z)) return null; TileEntity tileentity = world.getTileEntity(x, y, z); if (tileentity instanceof TileEntitySmeltingMachine) { return new GuiSmeltingMachine(player, (TileEntitySmeltingMachine) tileentity); } if (tileentity instanceof TileEntityRepairMachine) { return new GuiRepairMachine(player, (TileEntityRepairMachine) tileentity); } if (tileentity instanceof TileEntityConversionMachine) { return new GuiConversionMachine(player, (TileEntityConversionMachine) tileentity); } if (tileentity instanceof TileEntityTeleportMarker) { return new GuiTeleportMarker(player, (TileEntityTeleportMarker) tileentity); } if (tileentity instanceof TileEntityPresentBox) { return new GuiPresentBox(player, (TileEntityPresentBox) tileentity); } return null; } } ContainerPresentBox.java package nahama.ofalenmod.inventory; import nahama.ofalenmod.tileentity.TileEntityPresentBox; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.inventory.Container; import net.minecraft.inventory.Slot; import net.minecraft.item.ItemStack; public class ContainerPresentBox extends Container { private TileEntityPresentBox tileEntity; /** プレゼントボックスのインベントリの第一スロットの番号 */ private static final int index0 = 0; /** プレイヤーのインベントリの第一スロットの番号 */ private static final int index1 = 54; /** クイックスロットの第一スロットの番号 */ private static final int index2 = 81; /** このコンテナの全体のスロット数 */ private static final int index3 = 90; public ContainerPresentBox(EntityPlayer player, TileEntityPresentBox tileEntity) { this.tileEntity = tileEntity; tileEntity.openInventory(player); for (int iy = 0; iy 6; iy++) { for (int ix = 0; ix 9; ix++) { this.addSlotToContainer(new Slot(tileEntity, ix + (iy * 9), 8 + (ix * 18), 18 + (iy * 18))); } } for (int iy = 0; iy 3; iy++) { for (int ix = 0; ix 9; ix++) { this.addSlotToContainer(new Slot(player.inventory, ix + (iy * 9) + 9, 8 + (ix * 18), 140 + (iy * 18))); } } for (int ix = 0; ix 9; ix++) { this.addSlotToContainer(new Slot(player.inventory, ix, 8 + (ix * 18), 198)); } } @Override public boolean canInteractWith(EntityPlayer player) { return tileEntity.isUseableByPlayer(player); } @Override public ItemStack transferStackInSlot(EntityPlayer player, int slotNumber) { ItemStack itemStack = null; Slot slot = (Slot) inventorySlots.get(slotNumber); if (slot != null slot.getHasStack()) { ItemStack itemStack1 = slot.getStack(); itemStack = itemStack1.copy(); if (index0 = slotNumber slotNumber index1) { // プレゼントボックスのインベントリならプレイヤーのインベントリに移動。 if (!this.mergeItemStack(itemStack1, index1, index3, true)) { return null; } } else { if (index1 = slotNumber slotNumber index2) { // プレイヤーのインベントリならクイックスロットに移動。 if (!this.mergeItemStack(itemStack1, index2, index3, false)) { return null; } } else if (index2 = slotNumber slotNumber index3 !this.mergeItemStack(itemStack1, index1, index2, false)) { // クイックスロットからプレイヤーのインベントリに移動できなかったら終了。 return null; } } if (itemStack1.stackSize == 0) { slot.putStack((ItemStack) null); } else { slot.onSlotChanged(); } if (itemStack1.stackSize == itemStack.stackSize) { return null; } slot.onPickupFromSlot(player, itemStack1); } return itemStack; } } GuiPresentBox.java package nahama.ofalenmod.gui; import org.lwjgl.opengl.GL11; import nahama.ofalenmod.inventory.ContainerPresentBox; import nahama.ofalenmod.tileentity.TileEntityPresentBox; import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.util.ResourceLocation; import net.minecraft.util.StatCollector; public class GuiPresentBox extends GuiContainer { private TileEntityPresentBox tileEntity; private static final ResourceLocation GUITEXTURE = new ResourceLocation("textures/gui/container/generic_54.png"); public GuiPresentBox(EntityPlayer player, TileEntityPresentBox tileEnttiy) { super(new ContainerPresentBox(player, tileEnttiy)); this.tileEntity = tileEnttiy; ySize = 222; } @Override protected void drawGuiContainerForegroundLayer(int par1, int par2) { fontRendererObj.drawString(StatCollector.translateToLocal(tileEntity.getInventoryName()), 8, 6, 4210752); fontRendererObj.drawString(StatCollector.translateToLocal("container.inventory"), 8, ySize - 96 + 2, 4210752); } @Override protected void drawGuiContainerBackgroundLayer(float par1, int par2, int par3) { GL11.glColor4f(1.0F, 1.0F, 1.0F, 1.0F); mc.getTextureManager().bindTexture(GUITEXTURE); int k = (width - xSize) / 2; int l = (height - ySize) / 2; this.drawTexturedModalRect(k, l, 0, 0, xSize, ySize); } } コメント この項目に関する質問などをどうぞ。 GUIのテクスチャをオリジナルのものにする場合どう記述すれば、よいのでしょうか? - 新人もっだー 2015-12-20 12 20 13 解説/public ResourceLocation(String path)に追記しましたのでご確認ください。自分で指定したパスにバニラのラージチェストのテクスチャを改変したものを保存すればできます。 - Tom Kate 2015-12-21 16 52 24 コピペでもコンストラクター ContainerAluminiumChest(EntityPlayer, TileEntityChest) は未定義ですとなります。 - 新人もっだー 2015-12-26 11 26 55 それは、Eclipse上でコンパイルエラーの検出がされたということでしょうか?どの行でのエラーかを教えていただけないでしょうか。 - 赤砂蛇凪浜 2015-12-26 13 48 01 ContainerAluminiumChestのreturn new ContainerChest(player, (TileEntityChest) tileentity);no - 新人もっだー 2015-12-28 08 51 55 の行です - 新人もっだー 2015-12-28 08 52 37 このチュートリアルの中に該当する行がありません。一度コピー ペーストしなおしてみてください。 - 赤砂蛇凪浜 2015-12-28 09 36 26 import cpw.mods.fml.common.Mod.Instance;が書き込んでから保存するとなぜかそれだけ消えてしまうのですが、なんで何でしょうか? - san 2016-09-11 08 20 49 IDE(Eclipse)のimport文自動編集が消しているのだと思われます。@Instanceの部分にエラーが出ていなければ特に問題はないと思います。 - 赤砂蛇凪浜 2016-09-16 07 35 27 醸造台やエンチャント台、装備スロットのように、スロット内に一部のアイテムのみ入れられるようにするにはどうすれば良いのでしょうか? - 名無しさん 2016-12-02 01 33 32 addSlotToContainerでSlotを継承した自作のクラスを渡せばよいです。その際、isItemValidをオーバーライドすれば入れられるアイテムを、canTakeStackをオーバーライドすれば取り出せるアイテムを制御できます。分かりにくかったらすみません。後ほど本文への掲載も検討します。 - 赤砂蛇凪浜 2016-12-04 10 50 12 GUIに文字を入れて翻訳するのはどうやるんですか - HIROMARU (2021-01-09 11 38 30) 名前
https://w.atwiki.jp/2ch_killer7/pages/103.html
超聴覚を持つコンがなぜホテルユニオンで不意打ちで殺られた? コンの聴覚能力は具体的にどんな感じ? コン・スミスに関する概略 ※このテキストは当まとめサイト編集者が独自に記述したものです ■=ゲーム本編の情報 ■=Hand in killer7 ■=攻略本 ■=海外版攻略本 ■=その他オフィシャル設定 killer7のメンバー。 1955年八雲会として密議会のため集合したホテル・ユニオンでエミール・パークライナーに殺され、死体は1957年「スミス同盟」の多層人格として復活する。 2011年、ブラックヘヴンスマイルの手にかかり死亡。この時点で人格は蘇生せずスミス同盟は解散となる。 孤児出身。ホテル・ユニオンの最期で窓を覗いていたのは街路の家族連れを憧れの目で見ていたため。 超聴覚を持つコンがなぜホテルユニオンで不意打ちで殺られた? 133(part1):ゲーム好き名無しさん:2005/06/12(日) 22 18 00 ID ??? ホテルでエミールに殺される時、 コンは背後のエミールになんで気付かなかったんだ? 耳がいいならわかりそうな感じなんだけど。 クリアしてこれが一番気になるんだが あとシャワーシーンで殺されるのは楓だと思い込んでいたorz 134(part1):ゲーム好き名無しさん:2005/06/12(日) 22 24 45 ID ??? 133 音楽を聴いていたんじゃね? それにしてもコンのハンサムマンに対する反応は 突込み所なんだろうか。本物のハンサムポーズって、 見えないんじゃないのかと。 136(part1):ゲーム好き名無しさん:2005/06/12(日) 22 34 25 ID ??? 134 音楽聴いてた…目からうろこ。そっかそうか スージーって殺人常習犯でキラー7が依頼されて殺した子だった気がする ハト書簡で見たような気がする 140(part1):ゲーム好き名無しさん:2005/06/12(日) 23 01 58 ID ??? そういやコンの聴覚って全然役に立たなかったな。 あんなデカイひび割れすぐ見つかるやん。 141(part1):ゲーム好き名無しさん:2005/06/12(日) 23 07 42 ID ??? 140 迷いの小路(だっけ?)は?<聴覚 しかしそれを言ったら高速移動だって役立たず・・・ 426(part6):ゲーム好き名無しさん:2007/04/12(木) 14 36 47 ID 5sFpr+eu0 コンの音の視覚化って試験管使わなくてもできるけど、ホテルで殺される時はなんで気付けなかったんだろう? 427(part6):ゲーム好き名無しさん:2007/04/12(木) 16 56 36 ID DC8N0dT/O 425 結界=ハーマン、クンラン、エミール(K7関係者)の意思 血痕=他の見知らぬ力持たない者の必死な意思 って事? 426 外を歩いてた親子を見るのに夢中になってたから。 そもそもどうやって見てたかはKiller7の謎の一つ。会話を聞いてたってならともかく。 あと全然関係ないかもだが、25区のブラッディ・ハイの進化系がHSなんだろうかと思ったりする。 いやゲーム違うしと言われればそれまでだけど。 431(part6):ゲーム好き名無しさん:2007/04/13(金) 02 25 36 ID 4LX1Hc1i0 コンの音の視覚化って試験管使わなくてもできるけど 試験官使わなくても出来るって事は超能力じゃなくて元々持ってる技術なんでしょ ホテルで殺される時はなんで気付けなかった 音楽聞いてた説と別の事考えてた説 あと、エミールがスゴ腕過ぎた説 コンの聴覚能力は具体的にどんな感じ? 720(part6):ゲーム好き名無しさん:2008/06/01(日) 17 50 21 ID 79xZD34m0 ソードマスターすぎる展開だw 今気付いたけど、コンとコヨーテの走り方おなじっぽいね。 コンがコヨーテの真似してんのかなぁ 721(part6):ゲーム好き名無しさん:2008/06/01(日) 23 30 35 ID aaDy1acx0 コンは目見えてないから真似すんの無理じゃね? 722(part6):ゲーム好き名無しさん:2008/06/01(日) 23 38 20 ID GwbduvCtO 721 ハンサムマンかっこいいって言ってたから大丈夫。 723(part6):ゲーム好き名無しさん:2008/06/02(月) 00 28 40 ID KFGJTaVoO コンは目見えるのか見えないのかわかんねえな 724(part6):ゲーム好き名無しさん:2008/06/02(月) 04 17 49 ID 494/d0jhO 心の目で見てんだよ って事で納得してる 726(part6):ゲーム好き名無しさん:2008/06/02(月) 22 09 48 ID 6iMXtGMt0 だからコンは音を視覚化できるんだってば 728(part6):ゲーム好き名無しさん:2008/06/03(火) 00 02 33 ID 494/d0jhO 726 それがピンとこない。 舌を鳴らしてソナーみたいに空間を把握するってな、全盲の人の話をテレビで見たことあるが、 あんな感じだろうか? 729(part6):ゲーム好き名無しさん:2008/06/03(火) 01 08 04 ID ACsdUU850 コンがソナー使ってないところを見ると、 物自体から発せられる音から物質を視覚で認知してると思う。 そういう点ではコン・スミスの音の視覚化の正体とは、 本来それぞれ独立しているはずの五感が別の五感と共鳴してしまう、 『共感覚』の持ち主であるといえそう。 730(part6):ゲーム好き名無しさん:2008/06/03(火) 02 05 02 ID iBiF9I7wO 音を視覚化できるってのは分かるけど、色は識別できるんだろうか? ナニイロハンサムか分からなかったら面白くないだろうに。 732(part6):ゲーム好き名無しさん:2008/06/03(火) 12 26 42 ID YTRhXAN10 共感覚者なら音に色を感じるという症状もあるから色もわかるんじゃないかな。 ただ赤がちゃんと赤色に見えてるかとかはわかんないけど
https://w.atwiki.jp/mod-jplang/pages/56.html
MC1.7.10 最新版(Random Things-2.2.4)の日本語langファイルです tile.playerinterface.name=プレイヤーインターフェース tile.creativePlayerInterface.name=クリエイティブプレイヤーインターフェース tile.fluidDisplay.name=流体ディスプレイ tile.advancedFluidDisplay.name=高度な流体ディスプレイ tile.fertilizedDirt.name=肥沃な土 tile.itemCollector.name=アイテムコレクター tile.advancedItemCollector.name=高度なアイテムコレクター tile.onlineDetector.name=オンライン探知機 tile.moonSensor.name=ムーンフェイズセンサー tile.notificationInterface.name=通知インターフェース tile.wirelessLever.name=無線レバー tile.lapisLamp.name=ラピスラズリランプ tile.dyeingMachine.name=染色機 tile.imbuingStation.name=インベングステーション tile.spectreGlass.name=スペクターガラス tile.energyDistributor.name=エネルギー分配器 tile.enderEnergyDistributor.name=エナジーディストリビューター tile.bloodMoonSensor.name=ブラッドムーンセンサー tile.spectreBlock.name=スペクターブロック tile.spectreBlock.black.name=黒色のスペクターブロック tile.spectreBlock.red.name=赤色のスペクターブロック tile.spectreBlock.green.name=緑色のスペクターブロック tile.spectreBlock.brown.name=茶色のスペクターブロック tile.spectreBlock.blue.name=青色のスペクターブロック tile.spectreBlock.purple.name=紫色のスペクターブロック tile.spectreBlock.cyan.name=シアン色のスペクターブロック tile.spectreBlock.silver.name=ライトグレー色のスペクターブロック tile.spectreBlock.gray.name=灰色のスペクターブロック tile.spectreBlock.pink.name=ピンク色のススペクターブロック tile.spectreBlock.lime.name=ライム色のスペクターブロック tile.spectreBlock.yellow.name=黄色のスペクターブロック tile.spectreBlock.lightBlue.name=水色のスペクターブロック tile.spectreBlock.magenta.name=赤紫色のスペクターブロック tile.spectreBlock.orange.name=オレンジ色のスペクターブロック tile.spectreBlock.white.name=白色のスペクターブロック itemGroup.Random Things=RandomThings item.filterBlock.name=ブロックフィルター item.filterItem.name=アイテムフィルター item.filterEntity.name=エンティティフィルター item.filterPosition.name=位置フィルター item.biomeSolution.name=溶液 item.biomeCapsule.name=バイオームカプセル item.biomePainter.name=バイオームペインター item.whitestoneUncharged.name=ホワイトストーン[無償] item.whitestoneCharged.name=ホワイトストーン[有料] item.voidStone.name=ボイドストーン item.dropFilter.name=ドロップフィルター item.dropFilterVoiding.name=ボイドドロップフィルター item.enderLetter.name=エンダーレター item.spectreKey.name=スペクターキー item.opSpectreKey.name=オペレータースペクターキー item.soundRecorder.name=サウンドレコーダー item.spectreSword.name=スペクターソード item.spectreHelmet.name=スペクターヘルメット item.spectreChestplate.name=スペクターチェストプレート item.spectreLeggings.name=スペクターレギンス item.spectreBoots.name=スペクターブーツ item.spiritBinder.name=スピリットバインダー item.magneticForce.name=磁力 item.gintoEmpty.name=空のギント item.gintoFilled.name=満たされたギント item.creativeSword.name=クリエイティブソード item.creativeGrower.name=クリエイティブ栽培者 item.creativeChestGenerator.name=クリエイティブチェストジェネレーター item.playerCore.name=プレイヤーコア item.obsidianStick.name=黒曜石の棒 item.enderFragment.name=エンダーフラグメント item.ectoplasm.name=エクトプラズム item.spectreIron.name=スペクターアイアン item.transformationCore.name=変換コア item.enderDiamond.name=エンダーダイアモンド item.energizedWater.name=活性水 item.bloodStone.name=ブラッドストーン item.error.name=エラー item.imbue.poison.name=毒の塊 item.imbue.experience.name=経験値の塊 item.imbue.fire.name=火の塊 item.imbue.wither.name=枯れの塊 item.imbue.weakness.name=弱点の塊 item.imbue.spectre.name=スペクターの塊 imbue.poison=毒の塊 imbue.experience=経験値の塊 imbue.fire=火の塊 imbue.wither=枯れの塊 imbue.weakness=弱点の塊 imbue.spectre=スペクターの塊 entity.spirit.name=精神 entity.bloodmoonCircle.name=ブラッドムーンサークル text.miscellaneous.press=詳細については%sを押してください text.miscellaneous.shift=シフト text.miscellaneous.block=ブロック text.miscellaneous.metadata=メタデータ text.miscellaneous.oreDictionary=鉱石辞書 text.miscellaneous.listType=リスト型 text.miscellaneous.entityid=エンティティID text.miscellaneous.entityName=エンティティ名 text.miscellaneous.connectedTo=に接続されています text.miscellaneous.invalidArguments=無効な引数 text.miscellaneous.setBonus=セットボーナス text.miscellaneous.opOnly=オペレータのみ text.miscellaneous.creativeOnly=クリエイティブのみ text.miscellaneous.category=カテゴリ %s text.miscellaneous.shiftCategory=Shiftキーを押しながらカテゴリを変更 text.miscellaneous.save=保存する text.miscellaneous.charges=貯蔵 %d text.miscellaneous.whiteList=ホワイトリスト text.miscellaneous.blackList=ブラックリスト text.miscellaneous.yes=はい text.miscellaneous.no=いいえ text.onlineDetector.detectingNobody=誰も検出していません text.onlineDetector.detecting=%sを検出しています text.miscellaneous.ignoreOreDict=鉱石辞書を無視する text.miscellaneous.useOreDict=鉱石辞書を使う text.miscellaneous.ignoreMetadata=メタデータを無視する text.miscellaneous.useMetadata=メタデータを使用する text.miscellaneous.noTarget=ターゲットが選択されていません(Shiftキーを押しながらブロックをクリック) text.miscellaneous.target.x=ターゲットX %d text.miscellaneous.target.y=ターゲットY %d text.miscellaneous.target.z=ターゲットZ %d text.miscellaneous.position.x=位置-X %d text.miscellaneous.position.y=位置-Y %d text.miscellaneous.position.z=位置Z %d text.miscellaneous.dimension=寸法 %d text.spectre.soulSolid=ソウルソリッド text.dyed=染めた%s text.color.black=黒色 text.color.red=赤色 text.color.green=緑色 text.color.brown=茶色 text.color.blue=青色 text.color.purple=紫色 text.color.cyan=シアン色 text.color.silver=銀色 text.color.gray=灰色 text.color.pink=ピンク色 text.color.lime=ライム色 text.color.yellow=黄色 text.color.lightBlue=水色 text.color.magenta=赤紫色 text.color.orange=オレンジ色 text.color.white=白色 text.error.nbt=NBTModファイルを使用できませんでした。手紙や磁力イベントなどは再起動しても生き残れません。 text.magneticForce.notOnline=オンラインではない text.magneticForce.invalidUsername=無効なユーザー名 text.magneticForce.noRights=権限はありません text.magneticForce.notYourself=自分ではない text.enderLetter.noReceiver=受信機セットなし text.enderLetter.receiver=受信者 %s text.enderLetter.sender=送信者 %s text.enderLetter.invalidreceiver=無効な受信者を指定しました text.enderLetter.empty=あなたは空の手紙を送ることはできません text.bloodmoon.command=翌夜にBloodmoonがあります text.bloodmoon.notify=血の月が昇っています... text.bloodmoon.nosleep=あなたは今疲れを感じていません。 コメント コメント欄の運営・編集方針に関してはコメント欄方針を参照してください。 このコメント欄はwikiの情報充実のため、追記がしやすいよう設けた物なので、編集が苦手な方は以下のコメントフォームへ書き込んでください。後に編集者が追記等をします。 表示される親コメには限りがあります。返信の際は返信したいコメント横のチェックを付けて返信するようご協力お願いします。 コメログ:鬼畜系mod/random/MC1.7.10 名前 バージョン選択に戻る トップページに戻る
https://w.atwiki.jp/sims2atwiki/pages/15.html
Jill Valentine - Resident Evil 3 - 2007 remake http //www.modthesims2.com/showthread.php?t=233234
https://w.atwiki.jp/mc_icwiki/pages/109.html
Minecraft v1.6.1 Client Version v.X 2013/07/02 MOD更新確認用 更新されたMOD名の語尾に [161] を付けること index index APIMinecraft Forge Code Chickin Core Slime Void Lib Immibis Core Mods大規模ModsIndustrial Craft 2 BuildCraft RedPower 2 RailCraft Forestry for Minecraft GregTech-addon ComputerCraft Traincraft MineFactoryReloaded 2 中小規模ModsDynamic Elevators MultiPageChest Balkon's WeaponMod Halogen Light Mod 竹MOD 回る張りぼて水車・風車 Selectable Paintings AddonBuildCraft3 AddonLogistics Pipes Additional Pipes Valve Pipe ExtraTanks QuarryPlus AdvancedFiller IndustrialCraft2 AddonAdvanced Solar Panels Compact Solar Arrays Advance Machines Advanced Power Management (charging bench) Nucler Control IC2 ComboArmor BC-IC連携系 AddonsBuildCraft-IndustrialCraft Crossover kuukai's Cross Converter Power Converters RedPower2 AddonsTubestuff ComputerCraft AddonsMiscPeripherals その他MFR Grass Fertilizer Addon NEI Plugins Utility Client Side Mods[Craft/Quick/Brew]Guide Not Enough Items Rei's Minimap LoginMessage SpawnChecker ID Checker コンフィグファイル書き換え[LoginMessage] LoginMessage.txtエンティティレーダーにプレイヤーのみ表示させるように Computer CraftHTTP関連の命令を使えるように 無線通信距離の緩和(範囲を10kmに) Gregtech-addon物質製造機EU消費量を従来の100万EUに戻した 錫セルの作成量を32個へ増量 休廃止Equivalent Exchange 2 LittleMaidMob(SMP対応待) Little Blocks (安定するまで除外) API 直接ゲームバランスに干渉しないので普段は考えないよろし +... Minecraft Forge http //files.minecraftforge.net/ Code Chickin Core http //www.minecraftforum.net/topic/909223-145146-smp-chickenbones-mods/ Slime Void Lib http //slimevoid.net/ Immibis Core http //www.minecraftforum.net/topic/1001131- コメント Mods -... 大規模Mods Industrial Craft 2 http //wiki.industrial-craft.net/index.php ttp //ic2api.player.to 8080/job/IC2_lf/ jenkins (2013-01-16 15 34 15) コメント BuildCraft http //www.mod-buildcraft.com/ コメント RedPower 2 http //www.eloraam.com/ http //www.minecraftforum.net/topic/365357- (2012-12-07 18 35 44) v3 2.0pre6 (2013-01-16 02 55 54) コメント RailCraft http //railcraft.wikispaces.com/ http //www.minecraftforum.net/topic/701990- コメント Forestry for Minecraft http //forestry.sengir.net/wiki/index.php?action=home 過去リスト:ttps //dl.dropbox.com/u/44760587/forestry/releases/index.html (2012-09-04 22 09 56) コメント GregTech-addon http //forum.industrial-craft.net/index.php?page=Thread threadID=7156 もはや大型MODと言える領域 (2013-01-16 03 38 53) コメント ComputerCraft http //www.computercraft.info/ コメント Traincraft http //trains-and-zeppelin.wikispaces.com/ 廃止予定 (2013-05-15 21 42 47) コメント MineFactoryReloaded 2 http //www.atomicstryker.net/minefactoryreloaded.html コメント 中小規模Mods Dynamic Elevators http //slimevoid.net/dynamic-elevators/ コメント MultiPageChest http //www.minecraftforum.net/topic/506109- v3 1.2.2 (2013-01-16 02 56 29) コメント Balkon s WeaponMod http //www.minecraftforum.net/topic/211517- 解説 http //www26.atwiki.jp/minecraft/pages/327.html v3 1.10.3 (2013-01-16 03 00 03) コメント Halogen Light Mod http //forum.minecraftuser.jp/viewtopic.php?f=13 t=1573 コメント 竹MOD http //forum.minecraftuser.jp/viewtopic.php?f=13 t=172 コメント 回る張りぼて水車・風車 http //forum.minecraftuser.jp/viewtopic.php?f=13 t=2150 added - mado (2012-12-29 00 29 42) コメント Selectable Paintings http //forum.minecraftuser.jp/viewtopic.php?t=1573 p=19203 コメント Addon -... BuildCraft3 Addon Logistics Pipes http //www26.atwiki.jp/minecraft/pages/955.html コメント Additional Pipes https //dl.dropbox.com/u/28984230/MC/ADP/main.html テレポートパイプの動作に燃料(EU,MJ,LP)が必要になりました (2013-05-15 21 42 29) コメント Valve Pipe http //www.minecraftforum.net/topic/1536511-146buildcraft-valve-pipe-and-more-131/ コメント ExtraTanks http //forum.minecraftuser.jp/viewtopic.php?f=13 t=2150 コメント QuarryPlus http //forum.minecraftuser.jp/viewtopic.php?f=13 t=8076 コメント AdvancedFiller http //forum.minecraftuser.jp/viewtopic.php?f=13 t=8077 コメント IndustrialCraft2 Addon Advanced Solar Panels http //forum.industrial-craft.net/index.php?page=Thread threadID=3291 コメント Compact Solar Arrays http //forum.industrial-craft.net/index.php?page=Thread threadID=4827 コメント Advance Machines http //forum.industrial-craft.net/index.php?page=Thread threadID=4907 コメント Advanced Power Management (charging bench) http //forum.industrial-craft.net/index.php?page=Thread threadID=7900 コメント Nucler Control http //forum.industrial-craft.net/index.php?page=Thread threadID=5915 コメント IC2 ComboArmor http //forum.industrial-craft.net/index.php?page=Thread threadID=8861 コメント BC-IC連携系 Addons BuildCraft-IndustrialCraft Crossover http //forum.industrial-craft.net/index.php?page=Thread threadID=2444 コメント kuukai s Cross Converter http //kuukai.6.ql.bz/minecraft/CrossConverter.html コメント Power Converters http //atomicstryker.net/maintainedmods.html コメント RedPower2 Addons Tubestuff http //www.minecraftforum.net/topic/1001131-146-immibiss-mods-smp-tubestuff-5210-core-5222-da-5214-infinitubes-030-liquid-xp-5200/ コメント ComputerCraft Addons MiscPeripherals http //www.computercraft.info/forums2/index.php?/topic/4587-cc152mc151-miscperipherals-32/ コメント その他 MFR Grass Fertilizer Addon URL not found NEI Plugins Utility Client Side Mods -... [Craft/Quick/Brew]Guide http //www.minecraftforum.net/topic/731133- v3 1.6.5.12 コメント Not Enough Items http //www.minecraftforum.net/topic/909223-145146-smp-chickenbones-mods/ コメント Rei s Minimap LoginMessage http //forum.minecraftuser.jp/viewtopic.php?f=13 t=153 コメント SpawnChecker http //forum.minecraftuser.jp/viewtopic.php?t=3835 コメント ID Checker http //forum.minecraftuser.jp/viewtopic.php?f=13 t=5440 コメント コンフィグファイル書き換え +... [LoginMessage] LoginMessage.txt エンティティレーダーにプレイヤーのみ表示させるように 0 0 2 e f Computer Craft HTTP関連の命令を使えるように B enableAPI_http=true 無線通信距離の緩和(範囲を10kmに) I modem_highAltitudeRange=100000 I modem_highAltitudeRangeDuringStorm=100000 I modem_range=100000 I modem_rangeDuringStorm=100000 Gregtech-addon 物質製造機EU消費量を従来の100万EUに戻した I MatterFabricationRate=1666666 錫セルの作成量を32個へ増量 I TincellsPer4Tin=32 コメント 休廃止 導入見送り,以前以前導入していたMOD Equivalent Exchange 2 LittleMaidMob(SMP対応待) http //forum.minecraftuser.jp/viewtopic.php?t=176 コメント Little Blocks (安定するまで除外) http //slimevoid.net/littleblocks/ コメント
https://w.atwiki.jp/miminecraft/pages/26.html
編集中 MODとは 導入することによって、そのゲームソフトのバランス調整や画像、モデルを差し替えたり、グラフィックエンジン、物理エンジンなどの基本システムを用いて、本編とは別のシナリオやグラフィック、モデル、システムのゲームを楽しむことができるもの。(ニコニコ大百科より) 要はゲーム改造ツールです。 中にはチート的なMODも多くありますが、現段階ではこのサーバーではそれらも含めてすべてOKとしています。ひと通りまちづくりが済んだ段階でそのあたりの可否は考えていこうと思います。 導入方法 まずはminecraft Japan WikiのMOD導入方法を一読してください。 基本的にはそれでできるはずですが、どうしてもうまくいかない場合は以下のことに注意してみてください。 また、大規模なMODを導入する場合は必ずminecraft.jarをバックアップしてから行うようにしてください。 マルチプレイでは動作しないMODも数多くあることをご了承ください! MODが使っているminecraftのバージョンに対応しているか? 必要な前提MOD(MOD LoaderやMinecraft Forgeなど)は導入してあるか? 導入手順や方法は正しいか?(Mod Loaderなどでは必ずしもすべてのファイルをminecraft.jarに入れるとは限らない) classファイルの競合が起きていないか?(基本的に競合が起きたらどちらかのMODは諦めることになるが、場合によっては導入順序を工夫することで両方を導入できる場合もある) ブロックIDやアイテムIDの競合は起きていないか?(特に新要素導入系MODの場合。専用のMODでIDを拡張することで回避可能な事が多い) META-INFファルダがあった場合はちゃんと消したか? それでもダメな場合はpipikapuまでご連絡いただければお力になれるかもしれません・・・。
https://w.atwiki.jp/kenshi_steam/pages/347.html
MODについての掲示板です コメント欄での【煽り、叩き、晒し、荒らし】を禁止します。 ログ全文はこちら→コメント/MOD掲示板 名前
https://w.atwiki.jp/wotkrs/pages/17.html
パフォーマンス改善系 低スペックパソコンをご使用の貴方に。 Ultra Fog Remove 大気中の浮遊物質を除去してクリーンな視界に。 fps向上が望まれます。PM2.5対策にはなりません。 WOT TWEAKER 戦車の排ガス等が気になる環境意識の高いあなたに。 fpsの向上が望まれます。設定次第では画面も見えやすくなります。 被撃破車両の煙 稼働車両の排気煙 火災発生時の火と煙 木の葉のざわめき 空の雲 などを消し去ることができます。 他のmodとは導入法が違うので、付属のPDFを見ながら導入してください。 Four's FPS and performance modpack FPS改善系modゴチャ混ぜパック。fps向上効果大。 full versionではなく Lite versionがおすすめ。 設置されている物や車両が負担の軽いテクスチャのものに置き換わったりします Lite versionにおけるhellcatの雄姿。ハゲてます。 HELL MINIMAL HANGAR MOD ガレージにも不要なものが多すぎますね、分かります。 ガレージでの諸操作の反応速度が遅すぎる諸兄にこれ。 スポットライトを浴びるのは、一人だけでいい。 上記のリンクが古かった場合は、こちら。
https://w.atwiki.jp/civilization/pages/124.html
MOD/CivModChooser MODを選んで起動できます。なお、MOD Chooserの改良とかではなく、一切関係ありません。 #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (Download) #ref error :ご指定のページがありません。ページ名を確認して再度指定してください。
https://w.atwiki.jp/wot_sengiken/pages/188.html
0.9.6向け 0.9.6クライアント向けの旧バージョンのパッケージ。 ※最新版は、YawChang MODs Packageに掲載。 0.9.6向けパッケージ Ver. 9.6.1 (0.9.6対応 / 2015-02-17掲載)内容 導入手順 注意事項 変更点 スクリーンショット ダウンロード コメント パッケージ Ver. 9.6.1 (0.9.6対応 / 2015-02-17掲載) 内容 J1mB0 s Crosshair Mod v1.47 Adiya s Historical Sight Scope Mod (通常視界・スナイパー視界向けレティクルのみ) ServerCross2 Alt Color Arty Reticle ズーム・発砲時の制震 (J1mB0照準に内包されているものを使用) Custom Damage Panel Damage Indicator v4 Autoaim Indicator XVM 3814 (カラースケールは WoTLabs に準拠) Total HP Battle Assistant (SPGの天頂視界時にEキーで俯瞰視界に切り換え) Allied silouhettes always Session Statistics (YasenKrasen 0.9.6.1 Vanilla) Auto Equip Quest Extended (個人ミッションの自動選択) メアド・PW保存 日本語フォント リプレイ用フリーカメラ WoT Killer 導入手順 "res_mods"のバックアップを作成する。 ダウンロードしたzipファイルを解凍する。 解凍したファイル・フォルダから"res_mods"フォルダの内容を、WoTクライアントのインストール先の"res_mods"フォルダにコピーする。 第六感発動時の音声を使用する場合は、同梱の"res"フォルダの内容をWoTクライアントの"res"フォルダにコピーする。 パッケージに同梱のフォント"DamagePanel_Font.ttf"を、Windowsにインストールする。 XVMのレーティング表示を有効にするためには、 XVMのサイト でアクティベート処理を行う事。 XVMの言語設定を日本語にする場合は、"@xvm.xc"の"language"を"jp"に変更する。 注意事項 導入に際しては、事前に"res_mods"フォルダのバックアップを取ること。 戦闘中にウィンドウモードとフルスクリーンモードとを切り替えた場合、戦闘画面の右側に表示される撃破・水没等のメッセージ表示位置が異常になるが、ミニマップの表示サイズを変更することで回復可能。 (たまに直らない場合もあるが、気にしないように) ASIA以外のクライアントで使用する場合は、"res_mods\0.9.6\gui\gui_settings.xml"を削除すること。 (クライアント内のリンクを開いた際、飛び先がASIAのサイトになるため) 日本語設定のクライアントで使用する場合は、"res_mods\0.9.6\gui\flash\fonts_all.swf"を削除すること。 (クライアント内の表示が不正になるため) 日本語設定以外のクライアントで使用する場合は、日本語フォントが必要(XVM等で日本語表示を使用しているため)。 一部の日本語表示にWindowsフォントを使用しているため、"MS ゴシック","MS Pゴシック"がPCにインストールされている必要がある。 XVMのnightly buildバージョンを使用しているため、予期せぬ不具合が発生する可能性がある。 変更点 前バージョンのパッケージからの変更点。 9.6.1 各MODを0.9.6クライアント対応のものに更新。 Quest Extededを追加。 Ingame Replay Managerを除外(0.9.6対応版待ち)。 ServerCross2を除外(使っていなかったため)。 スクリーンショット +... OTM (通常時) (Altキー挿下時) レティクル (通常視界 リロード済み) (通常視界 オートエイム中)(スナイパー視界 リロード中) (自走方視界 リロード済み) (自走方視界 リロード中) プレイヤーパネル ミニマップ ダメージパネル・ダメージログ ヒットログ 敵車両の残HP Capインジケータ 敵味方の合計HP ロード中画面 プレイヤー一覧 Session Statisticsの表示 クルー選択 ガレージスロットの追加フィルタ ダウンロード パッケージ Ver. 9.6.1 (0.9.6用) [YCModPack961.zip / 16.42 MB] Download (MediaFire) mirror1 (OneDrive) mirror2 (Google ドライブ) コメント 名前 コメント すべてのコメントを見る